package com.current.game.two;

import com.current.game.common.TileColors;

import javax.swing.*;
import java.awt.*;

/**
 * @author baopan
 * @createTime 2024/5/12 22:08
 */
public class TTFJpanel extends JPanel {
    // 游戏板尺寸、方块大小等
    private static final int BOARD_SIZE = 4;
    private static final int TILE_SIZE = 100;
    //每个数组的值
    int[][] ttfJValue = null;

    public TTFJpanel() {
    }

    public TTFJpanel(int[][] ttfJValue) {
        this.ttfJValue = ttfJValue;
        setOpaque(true); // 确保面板可以绘制背景
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;

        Font font = new Font("Arial", Font.BOLD, 20);
        g.setFont(font);
//        g.setColor(Color.RED);

        // 绘制文字
        String text = "Hello, World!";
        int x = 350; // 文字的x坐标
        int y = 300; // 文字的y坐标（基线位置）
        g.drawString(text, x, y);

        System.out.println("====>paintComponent===>");
        for (int i = 0; i < ttfJValue.length; i++) {
            for (int j = 0; j < ttfJValue[0].length; j++) {
                // 填充背景颜色（例如：灰色）
                g2d.setColor(TileColors.getColorByValue(ttfJValue[i][j]));
                g2d.fillRect(i * TILE_SIZE, j * TILE_SIZE, TILE_SIZE, TILE_SIZE);

                if (ttfJValue[i][j] != 0) {
                    String tileText = String.valueOf(ttfJValue[i][j]);
                    int tileTextX = i * TILE_SIZE + TILE_SIZE/2 - g.getFontMetrics().stringWidth(tileText)+5 ; // 减去文本宽度和一些间距
                    int tileTextY = j * TILE_SIZE + g.getFontMetrics().getAscent() + 35; // 加上字体上升距离和一些间距

                    g2d.setColor(Color.BLACK);
                    FontMetrics fm = g2d.getFontMetrics();
                    String numberStr = tileText;
                    g2d.drawString(numberStr, tileTextX, tileTextY);
                }

            }
        }

    }

}
